However, even this is not sufficient. If a polygon is at a constant
depth, then dz is zero, so an additional bias is required to ensure that
the highlight lines and the underlying polygon remain separated in that
case.
ffffggggllllPPPPoooollllyyyyggggoooonnnnOOOOffffffffsssseeeettttEEEEXXXXTTTT allows the application to define the proper scale
factor (_f_a_c_t_o_r) and additional bias (_b_i_a_s). The value of the offset
derived from these parameters is _f_a_c_t_o_r * dz + _b_i_a_s, where the GL
computes dz automatically for each polygon.
Initially GGGGLLLL____PPPPOOOOLLLLYYYYGGGGOOOONNNN____OOOOFFFFFFFFSSSSEEEETTTT____FFFFAAAACCCCTTTTOOOORRRR____EEEEXXXXTTTT (the value specified by _f_a_c_t_o_r)
and GGGGLLLL____PPPPOOOOLLLLYYYYGGGGOOOONNNN____OOOOFFFFFFFFSSSSEEEETTTT____BBBBIIIIAAAASSSS____EEEEXXXXTTTT (the value specified by _b_i_a_s) are both set
to 0.0.
NNNNOOOOTTTTEEEESSSS
Since _f_a_c_t_o_r is always used to scale dz, it can be chosen without regard
for the precision with which depth values are represented in the graphics
system. However, if the value chosen for _b_i_a_s is smaller than the
minimum representable difference in depth values, it will have no effect.
This minimum representable difference varies not only with the size of
the depth buffer, but also with other implementation-dependent
parameters, such as the number of guard bits that are used to prevent
overflow during rasterization. 0.00002 (somewhat larger than 1 / 2**16)
should be adequate for most systems, but may be so large that it causes
depth buffering artifacts on others. 0.000001 (somewhat larger than
1 / 2**20) might be a reasonable choice on systems with 24-bit depth
buffers.
ffffggggllllPPPPoooollllyyyyggggoooonnnnOOOOffffffffsssseeeettttEEEEXXXXTTTT is part of the EEEEXXXXTTTT____ppppoooollllyyyyggggoooonnnn____ooooffffffffsssseeeetttt extension, not part
of the core GL command set. If GGGGLLLL____EEEEXXXXTTTT____ppppoooollllyyyyggggoooonnnn____ooooffffffffsssseeeetttt is included in the
string returned by ffffggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg, when called with argument GGGGLLLL____EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS,
extension EEEEXXXXTTTT____ppppoooollllyyyyggggoooonnnn____ooooffffffffsssseeeetttt is supported by the connection.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ffffggggllllPPPPoooollllyyyyggggoooonnnnOOOOffffffffsssseeeettttEEEEXXXXTTTT is executed
between the execution of ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of
ffffggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____PPPPOOOOLLLLYYYYGGGGOOOONNNN____OOOOFFFFFFFFSSSSEEEETTTT____EEEEXXXXTTTT
ffffggggllllGGGGeeeetttt with argument GGGGLLLL____PPPPOOOOLLLLYYYYGGGGOOOONNNN____OOOOFFFFFFFFSSSSEEEETTTT____FFFFAAAACCCCTTTTOOOORRRR____EEEEXXXXTTTT or